Skip to main content

configuration

e following table describes options for configuring gRPC channels:

OptionDefault ValueDescription
HttpHandlerNew instanceThe HttpMessageHandler used to make gRPC calls. A client can be set to configure a custom HttpClientHandler or add additional handlers to the HTTP pipeline for gRPC calls. If no HttpMessageHandler is specified, a new HttpClientHandler instance is created for the channel with automatic disposal.
HttpClientnullThe HttpClient used to make gRPC calls. This setting is an alternative to HttpHandler.
DisposeHttpClientfalseIf set to true and an HttpMessageHandler or HttpClient is specified, then either the HttpHandler or HttpClient, respectively, is disposed when the GrpcChannel is disposed.
LoggerFactorynullThe LoggerFactory used by the client to log information about gRPC calls. A LoggerFactory instance can be resolved from dependency injection or created using LoggerFactory.Create. For examples of configuring logging, see <xref:grpc/diagnostics#grpc-client-logging>.
MaxSendMessageSizenullThe maximum message size in bytes that can be sent from the client. Attempting to send a message that exceeds the configured maximum message size results in an exception. When set to null, the message size is unlimited.
MaxReceiveMessageSize4 MBThe maximum message size in bytes that can be received by the client. If the client receives a message that exceeds this limit, it throws an exception. Increasing this value allows the client to receive larger messages, but can negatively impact memory consumption. When set to null, the message size is unlimited.
CredentialsnullA ChannelCredentials instance. Credentials are used to add authentication metadata to gRPCalls.
CompressionProvidersgzipA collection of compression providers used to compress and decompress messages. Custom compression providers can be created and added to the collection. The default configured providers support gzip compression.
ThrowOperationCanceledOnCancellationfalseIf set to true, clients throw <xref:System.OperationCanceledException> when a call is canceled or its deadline is exceeded.
UnsafeUseInsecureChannelCallCredentialsfalseIf set to true, CallCredentials are applied to gRPC calls made by an insecure channel. Sending authentication headers over an insecure connection has security implications and shouldn't be done in production environments.
MaxRetryAttempts5The maximum retry attempts. This value limits any retry and hedging attempt values specified in the service config. Setting this value alone doesn't enable retries. Retries are enabled in the service config, which can be done using ServiceConfig. A null value removes the maximum retry attempts limit. For more information about retries, see <xref:grpc/retries>.
MaxRetryBufferSize16 MBThe maximum buffer size in bytes that can be used to store sent messages when retrying or hedging calls. If the buffer limit is exceeded, then no more retry attempts are made and all hedging calls but one will be canceled. This limit is applied across all calls made using the channel. A null value removes the maximum retry buffer size limit.
MaxRetryBufferPerCallSize1 MBThe maximum buffer size in bytes that can be used to store sent messages when retrying or hedging calls. If the buffer limit is exceeded, then no more retry attempts are made and all hedging calls but one will be canceled. This limit is applied to one call. A null value removes the maximum retry buffer size limit per call.
ServiceConfignullThe service config for a gRPC channel. A service config can be used to configure gRPC retries.
services.AddGrpc(options =>
{
options.EnableDetailedErrors = true;
options.MaxReceiveMessageSize = 2 * 1024 * 1024; // 2 MB
options.MaxSendMessageSize = 5 * 1024 * 1024; // 5 MB
});

or you can configure it per service, given the fact that you might have different needs

 services.AddGrpc().AddServiceOptions<MyService>(options =>
{
options.MaxReceiveMessageSize = 2 * 1024 * 1024; // 2 MB
options.MaxSendMessageSize = 5 * 1024 * 1024; // 5 MB
});


services.AddGrpc(options =>
{
options.Interceptors.Add<LoggingInterceptor>();
});

Configuring client options

https://learn.microsoft.com/en-us/aspnet/core/grpc/configuration?view=aspnetcore-7.0#configure-client-options